Principii privind protectia memoriei
In mediile cu multiprogramare necesitatea protectiei obiectelor de memorie (segmente de cod, date sau combinatii) impotriva utilizarii incorecte este determinata de cresterea cerintelor privind siguranta si, in acelasi timp, caracterul privat al acestora.  In cadrul sistemelor prevazute cu un mecanism corespunzator de protectie erorile datorate unor cauze hardware sau software se propaga doar in obiectele de memorie accesibile procesului in care a aparut eroarea. Tentativa de a realiza accesul la  alte obiecte, cu amenintarea unui posibil export al erorii, este detectata si marcata ca ilegala si, in consecinta, blocata de mecanismele de protectie. In modul acesta, caderea unuia sau mai multor procese din sistem nu conduce, in final, la caderea intregului sistem. Mai mult, mentinerea in stare de izolare a erorilor constituie un important instrument de depanare, intrucit ajuta la localizarea punctului in care a aparut eroarea. Ea constituie si baza altor mecanisme intrebuintate in scopul cresterii fiablitatii, cum sint categorisirea (categorisation), recuperarea (recovery) si relansarea (restart). Acelasi mecanism de protectie utilizat pentru localizarea erorilor protejeaza si informatia din sistem impotriva utilizarii neautorizate, cu conditia ca sistemul de operare sa faca imposibil accesul unui proces la obiecte pentru care nu are autorizatie. Este posibila implementarea unui mecanism mai rafinat de protectie, permitind sistemului sa specifice setul de operatii legale asupra unui obiect accesibil. 

1. Medii inchise
Problema izolarii procesului (process isolation) reprezinta un element cheie in localizarea efectelor erorilor. Ea impune ca nici un proces sa nu dispuna de posibilitati superioare celor cerute de executareasarcinilor sale. In modul acesta, toate operatille efectuate de un proces asupra obiectelor sint constrinse la a fi in concordanta cu drepturile alocate. Orice abatere de la aceste interactiuni predefinite este considerata ilegala. Deoarece insesi drepturile unui proces sint stocate in memorie, devine necesar ca tabelul ce le contine sa devina un obiect special protejat. 
Cea mai buna cale de a implementa principiul izolarii proceselor consta in a dispune de un sistem cu mediu inchis (closed environment). Intr un astfel de sistem un proces ce ar urma sa efectueze o operatie asupra unui obiect trebuie sa arate mecanismului de protectie a memoriei ca dispune de dreptul de a efectua acea operatie. 
Situatia globala a drepturilor de acces acordate diferitelor procese in conjunctie cu diferitele obiecte poate fi reprezentata printro forma matriciala, in care fiecare coloana este asociata unui obiect si fiecare rind este asociat unui proces. Continutul elementului (i,j) reprezinta setul de operatii ce pot fi efectuate de catre procesul i asupra obiectului j. 
Exista doua metode de reprezentare a matricii drepturilor de acces: prin rinduri si prin coloane. In cadrul primei metode fiecarui proces ii este asociata o lista a drepturilor de acces, eliminind toate elementele vide (corespunzind obiectelor pentru care nu exista drept de acces). Lista se mai numeste si domeniu de acces (domain of access), deoarece fiecare proces cunoaste doar obiectele la care are drept de acces, toate celelalte obiecte din sistem fiindu i ascunse. Cind se face o referire de catre CPU a memoriei asociate unui obiect, domeniul de acces  poate fi utilizat pentru gasirea obiectului la care se face referirea. A doua metoda ataseaza fiecarui obiect o lista a dreptului de acces pentru fiecare proces. Cind se solicita o operatie asupra unui obiect se testeaza lista de acces asociata pentru a se vedea ca procesul solicitant detine dreptul de acces la acel obiect. 
Cele doua metode sint asemanatoare. Diferenta principala intre ele este data de costurile diferite ale operatiilor tipice necesare modificarii continutului matricii din fig. 4.15.
1.1. Liste de drepturi
Drepturile sint considerate ca niste chei si proprietarul are dreptul de acces la datele protejate prin cheie prin faptul ca poseda cheia respectiva. Aceasta ide e conduce la teste simple pentru asigurarea protectiei si  permite libera circulatie si copierea drepturilor (desi falsificarea unui drept sau augmentarea domeniului sau  de actiune trebuie interzise). Desi transferul de drepturi este o caracteristica dezirabile intr un sistem, ea devine o problema cind se impune revocarea unui drept. Acest lucru este generat de posibilitatea ca dreptul, acordat initial doar unui singur proces, sa fie copiat si transferat altor procese. Lucrurile se complica si mai mult cind se are in vedere ca procesele au, de regula, durate de viata mai mici decit drepturile. Pentru revoacrea unui drept sint necesare operatii complexe, constind din inspectarea tuturor proceselor, active sau nu, indiferent de mediul in care sint memorate.
Un argument important in favoarea listelor de drepturi este dat de posibilitatea de a stoca lista de drepturi a procesului in rulare intr o memorie mica si rapida, ceea ce creste viteza de testare a dreptului de acces. Listele de acces (despre care se va discuta in paragraful urmator) sint mult mai voluminoase si necesita o memorie rapida mai mare. 
1.2. Liste de acces
Metoda bazata pe liste de acces ofera un fel de directory centralizat, asociat fiecarui obiect, continind drepturile de acces ale procesului: cind un proces realizeaza accesul la un obiect, mecanismul asociat de testare examineaza drepturile procesului solicitant si accepta sau refuza acestuia accesul la obiect. Fiecare operatie implicind fie un obiect, fie drepturile de acces asociate, trebuie efectuata prin intermediul unui administrator al obiectului (object manager), care testeaza validitatea operatiei. Deci, toate operatiile, incluzind transferul de drepturi, trebuie sa urmeze aceeasi ruta, ceea ce poate conduce la congestionarea ei. Pe de alta parte, drepturile de acces pentru un anumit obiect sint pastrate intr un singur loc, fapt ce simplifica mult problema revocarii unui drept. Intrucit legitimitatea accesului este verificata de catre obiecte, un proces cunoaste toate obiectele din sistem, intrucit simpla cunoastere nu are nici un fel de implicatie asupra dreptului de acces. Un element caracteristic al metodei bazate pe liste de acces este necesitatea ca orice proces sa insoteasca cererea de acces cu un identificator, cerut de catre mecanismul de protectie pentru stabilirea dreptului de acces. De aceea, testarea listelor de acces este, in mod inerent, mai complicata si mai consumatoare de timp decit testarea listelor de drepturi.
Intrucit ambele tipuri de liste constituie reprezentari diferite ale aceleiasi baze de date, ele sint echivalente din punctul de vedere functional si ofera acelasi grad de protectie. Totusi, metoda bazata pe lista de drepturi ridica un numar mai mic de probleme de implementare, ceea ce a facut ca microprocesoarele moderne sa o foloseasca, in defavoarea metodei bazate pe lista de acces.

2.Domenii multiple
Uneori este necesara alocarea unor seturi diferite de drepturi procedurilor aceluiasi proces. Un exemplu este oferit de invocarea unei functii a sistemului de operare: procedura invocata are drepturi mai mari decit cea care o invoca, intrucit poate manipula date interioare sistemului de operare. 
In acest caz nu mai este posibil a asocia unui proces un domeniu de acces, data fiind necesitatea unor domenii multiple. Fiecare procedura are drepturi permanente asupra obiectelor sale locale (obiectele proprii acelei proceduri). Suplimentar, in momentul apelarii, o procedura primeste un set de drepturi asupra unor obiecte nelocale, drepturi conferite de catre chemator sub forma unor parametri ai procedurii. Operatia se numeste validarea inidicatorilor (pointer validation), deoarece dreptul poate fi utilizat pentru adresarea obiectelor, deci ele au un cimp care memoreaza un indicator catre obiect.
Mijloacele hardware ce ofera suport pentru domenii multiple de acces trebuie sa poate recunoaste necesitatea de a modifica lista drepturilorasociate programului in rulare si ar trebui  sa verifice ca drepturile transferate de catre chemator reprezinta un subset al multimii drepturilor posedate. Acest test este necesar pentru prevenirea cresterii necorespunzatoare a multimii drepturilor, rezultata din transferul spre o subrutina a unei copii a listei drepturilor augmentata, fapt ce ar permite subrutinei sa efectueze operatii interzise programului chemator.
Cu mici exceptii, unitatile de gestiune a memoriei din familiile microprocesoarelor moderne nu dispun de mijloace hardware speciale pentru pentru implementarea domeniilor multiple de acces in forma pura. In schimb, MMU sint proiectate pentru sprijinirea eficienta a domeniilor de acces asociate proceselor. Acelasi hardware poate fi folosit pentru implementarea domeniilor multiple, cu o anumita degradare a performantei, deoarece este necesara modificarea continutului memoriei interne a MMU la fiecare apel de procedura.

3. Stari masina privilegiate
O alta metoda de implementare a domeniilor multiple se bazeaza pe utilizarea starilor privilegiate ale masinii. Pe baza acestei abordari CPU isi poate asuma, la fiecare moment, una dintre cele n stari privilegiate. Fiecare procedura este asociata cu o stare privilegiata, asa ca, atunci cind una din ele isi incepe executia, CPU isi modifica starea in concordanta cu numarul privilegiului asociat procedurii. De asemenea, oricarui obiect i se asigneaza un numar de privilegiu.
Domeniul de acces al unei proceduri este constituit de catre toate obiectele din spatiul virtual al procedurii, alecaror numere de privilegiu sint mai mari sau egale cu starea actuala a CPU (daca numerele mai mici indica privilegii de grade superioare). Acest mecanism este usor de implementat, deoarece numarul privilegiului este memorat, in mod normal, in registrul intern de stare a CPU, care este stocat in stiva cind se apeleaza o procedura si este automat restaurat la terminarea executiei acesteia. Numarul de privilegiu se poate determina fie prin specificarea lui in instructiunea de apelare, fie prin citirea lui dintr un descriptor adecvat al procesului. Prima metoda presupune existenta unei instructiuni care sa permita implementarea ei; a doua metoda se utilizeaza in sistemele care poseda modurile de lucru kernel (nucleu) si user (utilizator), in care o instructiune de apel sistem produce modificarea starii nucleului.
Un alt mecanism hardware cerut de implementarea unei masini cu stari privilegiate consta in posibilitatea de a testa daca referirile sint facute la obiecte cu numarul privilegiului egal sau mai mare cu cel al CPU. Desi toate microprocesoarele moderne implementeaza diferite stari pentru CPU care sint recunoscute de mijloacele hardware disponibile, doar putine din ele, cum este cazul microprocesorului iAPX286, ofera mecanismele hardware pentru compararea starii CPU cu numarul privilegiului obiectului adresat. Deci mecanismul starilor priviilegiate ofera protectie doar pentru un subset de instructiuni speciale si pentru registrele interne.
Trebuie subliniat ca mecanismul bazat pe stari privilegiate, chiar in cazul implementarii complete, violeaza principiul mediului inchis. Acest lucru se datoreaza faptului ca procedurile cu numar mic al privilegiului au, adesea, mai multe drepturi de acces decit cele strict necesare pentru a si indeplini functia, facind mai dificila detectarea erorilor produse de defecte hardware, deoarece nivelul lor de privilegiu le permite manipularea de obiecte la care accesul nu ar fi necesar. Mai mult, devine posibila cresterea multimii drepturilor prin transferul unor parametri neadecvati spre procedurile privilegiate. De exemplu, daca un proces invoca o primitiva sendmessage, care transfera un numar unei cutii postale care, in mod  normal, nu ii este accesibila, s ar putea ca rezultatul sa constea in atasarea unui mesaj la acea cutie postala, fara a poseda dreptul de a o face.
Un alt pericol pentru securitatea sistemului este dat de posibilitatea de apelare a unei proceduri mai putin privilegiate. In acest caz devine posibil  a apela o rutina bine testata si a obtine rezultate eronate, deoarece rutina a apelat o procedura mai putin meticulos testata, procedura ce a indus eroarea. In final, credibilitatea rezultatelor obtinute de utilizator este inferioara nivelului dorit, ceea ce faciliteaza deteriorarea programelor de nivel superior. Deci, in timp ce obiectele accesibile sint doar cele cu numar de privilegiu mai mare sau egal, procedurile apelabile sint cele cu numar de privilegiu mai mic sau egal.

4.Mijloace de sprijin pentru testarea drepturilor
Cea mai des folosita metoda de a atasa drepturi obiectelor de memorie in sisteme cu microprocesoare consta in a atasa un set de fanioane, numite "drepturi", aceluiasi descriptor al obictului utilizat pentru conversia adreselor virtuale in adrese fizice. Aceasta tehnica permite MMU sa gaseasca drepturile asociate obiectului de memorie adresat in descriptorul pe care l a identificat in vederea conversiei de adrese, asa ca ambele operatii se pt efectua in paralel. In consecinta, drepturile se asociaza segmentelor sau paginilor, dupa cum se foloseste segmentarea sau paginarea ca tehnica de gestiune a memoriei. Totusi, din punctul de vedere al protectiei memoriei, intre cele doua moduri de gestiune exista o importanta deosebire.
Segmentele sint subdiviziuni ale programului vizibile de catre programator, cel care decide modul de organizare a programelor in segmente; deci, fiecare segment poate fi ales astfel incit sa i se poata asocia un anumit drept. Pe de alta parte, metoda paginarii nu permite programatorului sa structureze programul pe pagini, asa ca nu eista nici o relatie intre continutul paginii si semantica programului, o  pagina putind contine un conglomerat de informatii care necesita   in scopuri legate de protectie   diferite tipuri de drepturi. De exemplu, o aceeasi pagina poate contine cod si date, accesul la cod facindu se prin operatii de citire/inscriere. Rezulta ca nu este posibila protejarea codului impotriva inscrierilor eronate, deoarece este necesar a permite inscrierea in conjunctie cu datele din pagina. De aceea, segmentarea este de preferat pentru o implementare eficienta a meccanismelor de protectie bazate pe drepturi. Pe de alta parte, intrucit sistemele de paginare au avantaje importante privind alocarea memoriei, segmentarea cu paginare pare a fi o buna metoda, combinind avantajele atit ale segmentarii, cit si ale paginarii. 
Desi drepturile au o durata lunga de viata, aceasta caracteristica este dificil de implementat in sistemele cu microprocesoare, in cadrul carora drepturile sint stocate in descriptorii folositi pentru gestiunea memoriei. Apar probleme cind programele se afla partial in memoria principala si partial pe disc. In acest caz, cimpurile fiecarui descriptor folosit pentru evaluarea adresei fizice isi schimba continutul de fiecare data cind pagina sau segmentul al care se face referire este adus din memoria secundara. Este dificil a transfera drepturile prin transferul descriptorului de segment sau de pagina, deoarece continuturile cimpurilor acestuia s ar putea sa nu fie corecte. Mai mult, proliferarea descriptorilor da nastere unor probleme legate de concordanta intre diferite copii, care trebuie anulate cind un segment sau o pagina sint evacuate si actualizate cind acelasi segment sau pagina sint incarcate in memorie.
Cele mai des utilizate drepturi de acces. Trebuie mentionat ca unele din acestea pot fi atribuite simultan, intrucit se exclud reciproc:
-executie (execute only): cind fanionul asociat este 1, singurul drept posibil este acela de a extrage instructiuni. Fanionul este folosit pentru protectia zonelor de cod;
-citire (read only): cind fanionul asociat este 1, drepturile posibile sint citirea de date si extragerea de instructiuni. Fanionul este folosit pentru protectia obiectelor de memorie ce nu pot fi modificate;
-acces exclusiv la date (no CPU): cind fanionul asociat este 1, etragerea de instructiuni este considerata ilegala. Fanionul este folosit pentru identificarea  obiectelor de date.

5.Protectia prin mijloace hardware a memoriei
Listele de drepturi si listele de acces ofera un grad limitat de protectie impotriva alterarii datelor si programelor pastrate in memorie, deoarece actiunea lor este limitata la evitarea propagarii erorilor dincolo de transmiterea domeniului de acces. Pentru detectarea rapida si,eventual, corectarea erorilor se utilizeaza frecvent mijloace de protectie hardware. Necesitatea unui astfel de test provine din cresterea constanta a dimensiunii memoriei, fapt ce contribuie la cresterea la circa 60   70% a ponderii erorilor de memorie  in totalul erorilor sistem [23]. In favoarea protectiei prin mijloace hardware pledeaza si faptul ca, din punctul de vedere al volumului suplimentar de memorie si a circuitelor necesare implementarii, metodele folosite pentru detectarea si corectare a erorilor nu ridica probleme deosebite. In prezent exista mai multe circuite integrate care efectueaza codificarea/decodificarea in vederea detectiei si corectiei erorilor, ceea ce reduce costurile de implementare.
5.1. Detectia erorilor de memorie
Cea mai simpla tehnica de detectare a erorilor este bazata pe bitul de paritate. Ea foloseste un singur bit suplimentar pentru fiecare cuvint de memorie, in care se memoreaza valoarea functiei "sau exclusiv" sau a functiei "si exclusiv" avind la intrare bitii cuvintului de date asociat. In cazul functiei "sau exclusiv" paritatea este cu sot, in celelalt caz ea fiind fara sot. 
Inscrierea in memorie a unui cuvint este insotita de evaluarea bitului de paritate si el se memoreaza simultan cu datele. La citirea aceluiasi cuvint de memorie sint extrasi bitii de date si cel de paritate. Un circuit hardware evalueaza paritatea bitilor de date extrasi si o compara cu bitul de paritate evaluat la memorare. In cazul coincidentei paritatii calculate cu cea memorata, se considera ca informatia citita este corecta. In caz contrar se emita un semnal catre CPU, indicind detectarea unei erori de memorie. Evident, paritatea cuvintului de date citit se calculeaza in acelasi mod ca la memorarea cuvintului de date.
Mecanismul de testare a paritatii descris mai sus permite detectarea erorilor care afecteaza un numar impar de biti ai cuvintului de date. Eronarea unui numar par de biti trece nedetectata. Intrucit capacitatea de detectie/corectie a erorilor de catre un cod este data de numarul maxim de erori detectate/corectate in cazul cel mai nefavorabil, controlul paritatii permite evidentierea erorilor simple. 
O schema folosind circuite "sau exclusiv" pentru evaluarea paritatii (cu sot) a unui cuvint de date de 8 biti poate folosi atit la testarea paritatii cuvintului citit, cit si la generarea paritatii la inscrierea unui cuvint in memorie (Bit de paritate = 0 si iesirea schemei furnizeaza informatia pentru bitul de paritate asociat cuvintului). 
Daca un cuvint de date de n biti este folosit ca entitate pentru tehnica de detectie bazata pe paritate,  capacitatea de memorie ceruta de aceast a tehnica este de 1/n din capacitatea  memoriei propriu zise. In practica, valoarea normala pentru n este 8.

5.2. Coduri detectoare/corectoare de erori
Tehnologiia memoriilor RAM dinamice a permis realizarea unor mari volume de memorie pe o placheta cu cablaj imprimat, fapt ce a dus la larga utilizare a acestui tip de memorii in sistemele cu microprocesoare. Din pacate, memoriile dinamice nu sint numai dense, ci si mai intens supuse erorilor decit memoriile statice. Din cauzele obisnuite ale erorilor sint de remarcat radiatiile (in special particulele alfa) si virfurile de tensiune. Deci, chiar daca memoria dinamica functioneaza normal, este posibila aparitia erorilor.
Pentru a face fata acestor probleme se utilizeaza coduri cu redondanta, capabile nu numai sa detecteze, ci sa si corecteze eventualelel erori. Cind, la citirea unui cuvint de date, se constata o eroare, aceasta poate fi corectata si cuvintul reinscris in locatia corespunzatoare.  Daca eroarea a fost produsa de o particula alfa, memoria isi recapata continutul normal. Daca eroarea este rezultatul unei defectari hardware, inscrierea nu poate corecta valoarea informatiei stocate, in schimb CPU va primi valoarea corecta pe care locatia adresata ar fi trebuit sa o contina.
Codul corector de erori cel mai des folosit pentru memorii dinamice este codul Hamming ce permite detectarea erorilor duble si corectia erorilor simple. Acest cod necesita un numar suplimentar de k biti pentru fiecare cuvint de date de n biti. asa incit eroarea unuia din cei k+n biti ai cuvintului de cod sa produca o combinatie binara unica si distincta de zero. Deci este necesara satisfacerea conditiei 
k+n =< 2^(k-1) -1.
Inaintea stocarii in memmorie, fiecarui cuvint de n biti de date i se adauga cei k biti de control.  La citirea memoriei se extrag cei n-k biti memorati si se calculeaza asa numitul sindrom. Daca valoarea sa este 0, se considera ca informatia citita este corecta. In caz contrar, valoarea lui identifica in mod unic bitul eronat sau semnaleaza prezenta erorii duble. Calculul bitilor de control necesita calcularea produsului intre o matrice A de dimensiune (k-1)xn si vectorul de date D de n biti. Rezulta primii k-1 biti de control ai vectorului C, conform formulei:
d1*a1,i +d2*a2,i + ... + dn*an,i = ci, i=1,2,...,k-1
Ultimul bit de control este bitul de paritate (cu sot) al celorlalti k+n-1 biti ai vectorului C.
Matricea A contine, pentru fiecare coloana, o combinatie unica de k-1 biti. Nu este posibila combinatia in care sa figureze un singur 1.
Cind continutul citit al locatiei de memorie este corect, sindromul este compus numai din 0. Daca apare o eroare simpla, atunci sn = 1 si, de asemenea, devine 1 sindromul in al carui calcul s a folosit bitul eronat. In coonsecinta, vectorul sindrom capata valoarea acelei coloane a matricii de control A' care contine bitul eronat. Daca sn = 0 dar sindromul nu este nul, acest lucru semnifica aparitia a doua sau mai multe erori, dar nu se dispune de informatiile necesare corectarii lor. In concluzie, codul folosit permite detectia erorilor simple si duble, precum si detectia erorilor simple.
Alegerea elementelor matricii A, deci si ale matricii A', nu este nici pe departe atit de empirica pe cit pare din exemplul considerat. Exista o teorie a codurilor, bine pusa la punct, care ofera baze stiintifice de selectare a codului optim pentru o situatie data.
Costul suplimentar exprimat in consum de memorie este k/n. Ar parea ca este rentabil a folosi cuvinte cu numar n de biti mare, ceea ce ar duce la scaderea raportului k/n. Pe de alta parte, cu cit n este mai mare, creste si probabilitatea de aparitie a erorilor, sau, altfel spus, creste probabilitatea ca numarul erorilor care apar sa depaseasca numarul de erori corectabile sau detectabile de catre cod.
Din punctul de vedere al circuitelor secundare nu se ridica probleme deosebite, deoarece tehnologia integrarii pe scara larga a permis realizarea, in mai multe variante, a circuitelor care rezolva complet codificarea, detectia si corectia erorilor. Circuitele pot fi folosite in structuri de cuvinte de memorie de l, 2 sau 4 biti, ceea ce inlesneste munca proiectantului.
Bitii de control pot fi folositi si pentru protectia memoriei impotriva adresarii eronate. In acest caz bitii de control sint calculati prin luarea in considerare a bitilor atit de date cit si de adresa. Cind se face accesul unui cuvint in vederea citirii se face concatenarea bitilor de date si control cititi din memorie cu bitii de adresa, apoi se verifica sirul astfel rezultat.

5.3 Reconfigurarea memoriei.
Codurile corectoare de erori permit unui modul de memorie sa se comporte corect chiar in prezenta unui mic numar de erori in matricea memoriei, deoarece continuturile incorecte sint modificate asa incit, din exterior,ele sa apara corecte. Daca eroarea se datoreste unui defect permanent, ea poate fi corectata de catre mecanismul de corectie, dar nu poate fi indepartata pina la repararea defectului. Deci, numarul acestor erori creste in timp pina cind ele nu mai pot fi corectate folosind bitii redondanti.
Pentru cresterea fiabilitatii memoriei se pot folosi biti de rezerva. Memoria poate fi considerata ca o matrice in care liniile corespund cuvintelor, iar coloanele   bitilor de acelasi ordin din cuvintele memoriei.
Tehnica bitilor de rezerva foloseste un numar h de coloane suplimentare, asa ca fiecare cuvint are h biti de rezerva. Folosirea de coloane suplimentare in loc de rinduri suplimentare este dicatata de structura circuitelor de memorie, care tind sa aiba un mare numar de cuvinte foarte scurte, ceea ce face mai ieftina introducerea de coloane suplimentare. In favoarea  acestei alegeri pledeaza si faptul ca, daca se defecteaza un circuit de memorie ce asigura o coloana, toate cuvintele vor prezenta erori in aceasta coloana. Este mai simplua substitui coloana defecta cu una de rezerva.
Utilizarea eficienta a bitilor de rezerva presupune existenta unui cod redondant, care sa localizeze coloana defecta, si un circuit de multiplexare, care sa reconfigureze conexiunile la magistrale ale memoriei intr un mod care sa permita utilizarea coloanei de rezerva in locul celei defecte.
Desigur, erorile pot aparea in coloanele obisnuite, ca si in cele de rezerva. De aceea, codul folosit trebuie sa considere toate coloanele memoriei pentru a evita inlocuirea unei coloane defecte cu alta coloana defecta.
